/*
344. 反转字符串
. 简单

编写一个函数，其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。
不要给另外的数组分配额外的空间，你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。
示例 1：

输入：s = ["h","e","l","l","o"]
输出：["o","l","l","e","h"]
*/

#include <iostream>
#include <vector>

using namespace std;

class Solution {
public:
    vector<char> s;
    void reverseString() 
    {
        if(!s.empty())
        {
            // auto left=s.begin();
            // auto right=s.end()-1;
            char* left = s.data();
            char* right = s.data()+s.size()-1;
            while(left<right)
            {
                char temp;
                temp = *right;
                *right = *left;
                *left = temp;
                left++;
                right--;
            }
        }

    }
    void print_s()
    {
        for(char str:s)
        {
            cout << str << ", ";
        }
    }
};

int main()
{
    Solution sl;
    sl.s = {'h','e','l','l','o'};
    sl.print_s();
    cout << endl;
    sl.reverseString();
    sl.print_s();
    return 0;
}